Method and system for forming HCVQ vector library

ABSTRACT

The invention relates to encoding and decoding images. According to an aspect of the invention HCVQ codevectors are formed in a receiving terminal. A group of codevectors forms a codebook, and a group of codebooks forms a codebook library. Only a VQ codebook and a certain number of modification vectors are sent to the receiving terminal. The compressed HCVQ vectors are formed using the received VQ and modification vectors.

FIELD OF THE INVENTION

[0001] This invention relates to encoding and decoding images. Morespecifically, the invention relates to generating HCVQ (HierarchicalClassifying Vector Quantization) codebooks. Furthermore, the inventionrelates to encoding and decoding video in streaming media solutions.

BACKGROUND OF THE INVENTION

[0002] Streaming media means that a video is transmitted through anetwork from a sending party to a receiving party in real-time when thevideo is shown on the terminal of the receiving party.

[0003] A digital video consists of a sequence of frames—there aretypically 25 frames per second—each frame 1 consisting of M1×N1 pixels,see FIG. 1. By way of example, these specifications will relate to acolor representation in which each pixel is represented by 24 bits insome of the standard color representations, such as RGB where the colorsare divided into red (R), green (G), and blue (B) components that arefurther expressed by a number ranging between 0 and 255. A capacity of astream of M1×N1×24×25 bits per second (bps) is needed for transmittingall this information without data compression. Even a small frame sizeof 160×120 pixels yields 11,5 Mbps and is beyond the band-width of mostfixed and, in particular, all wireless Internet connections (9.6 kbps(GSM) to some hundreds of kbps within the reach of WLAN). However, allvideo sequences contain some amount of redundancy and may therefore becompressed.

[0004] Any video signal may be compressed by dropping some of theframes, i.e., reducing the frame rate, and/or reducing the frame size. Aclever choice of the color representation in color videos may furtherreduce the visually relevant information to one half bit count or below,for example the standard transition from RGB to YCrCb representation.YCrCb is an alternative 24 bit color representation obtained from RGB bya linear transformation. The Y component takes values between 0 and 255corresponding to the brightness or the gray-scale value of the color.The Cr and Cb components take values between −128 and +127 and definethe chrominance or color plane. In radial coordinates, the angle aroundthe origin or hue determines the actual color, while the distance fromthe origin corresponds to the saturation of the color. These kinds ofsteps are assumed taken in what follows, and the emphasis is on optimalencoding of the detailed information present in the remaining frames.

[0005] All video compression techniques utilize the existingcorrelations between and within the frames, on the one hand, and theunderstanding of the limitations of the human visual system, on theother. The correlations such as immovable objects and areas withconstant coloring, may be compressed without loss, while the omission ofinvisible details is by definition lossy. Further compression requirescompromises to be made in the accuracy of the details and colors in thereproduced images.

[0006] Retaining good visual quality of the compressed videos is justone of the many requirements facing any practical video compressiontechnology. For commercial purposes, the encoding process should bereasonably fast in order to facilitate the encoding of large amounts ofvideo content. Apart from a possible initial buffering of frames in thecomputer's memory, the viewing of a video typically occurs in real timedemanding real time decoding and playback of the video. The range ofintended platforms from PC's (personal computers) to PDA's (personaldigital assistants) and possibly even to third generation mobile phonessets further constraints on the memory usage and processing power needsof the codecs (coder-decoder).

[0007] Fast decoding is even more important for so-called streamingvideos, which are transmitted to the receiver in real time as the userwatches. A limited data transmission capacity imposes a minimumcompression ratio over the full length of the video for streamingvideos. This is because the bit rate for transmitting the video mustremain within the available bandwidth at all times.

[0008] Most video compression technologies are comprised of twocomponents: an encoder used in compressing the videos and a decoder orplayer to be installed in the prospective viewing apparatus. Commonly,such decoders are downloaded into the viewing apparatus for permanentinstallation or just for the viewing time of a video. Although thisdownloading needs to be done only once for each player version, there isa growing interest towards player-free streaming video solutions, whichcan reach all internet users. In such solutions, a small playerapplication is transmitted to the receiving end together with the videostream. In order to minimize the waiting time due to this overheadinformation, the application, i.e. the decoder, should be made extremelysimple.

[0009] In practice the image is typically divided into blocks 2 of N×Npixels (FIG. 2) and each block is analysed independent of the others.

[0010] The simplest way to compress the information for an image blockis to reduce the accuracy in which the luminance (and naturallychrominance, i.e. color) values are expressed. Instead of the original256 possible luminance values, one could consider 128 (the values 0, 2 .. . , 254) or 64 values (0, 4, . . . , 252) thereby reducing the numberof bits per pixel needed to express the luminance information by 12.5%and 25%, respectively. Simultaneously such a scalar quantizationprocedure induces encoding errors; in the previous exemplary cases theaverage errors are 0.5 and 1 luminance unit per pixel, respectively.

[0011] In VQ (Vector Quantization) methods, the N×N image blocks 2, orN² vectors 3 (see FIG. 3), are matched to vectors of the same size froma pre-trained (trained prior to actual use) codebook. For each block,the best matching code vector 4 is chosen to represent the originalimage block. All the image blocks 2 are thus represented by a finitenumber of code vectors 4, i.e., the vectors are quantized. The indicesof the best matching vectors are sent to the decoder and the image isrecovered by finding the vectors from the decoder's copy of the samecodebook.

[0012] The encoding quality of VQ depends on the set of training imagesused in preparing the codebook and the number of vectors in thecodebook. The dimension of the vector space is a function of the blockdimension N squared (N² pixel values) whereas the number of possiblevectors grows as 256^(N) ² (when considering luminance vectors)—thevectors in the codebook should be representative for all these vectors.Therefore, in order to maintain a constant quality of the encoded imageswhile increasing the block size, the required codebook size increasesexponentially. This fact leads to huge memory requirements and, quite asimportantly, to excessively long search times for each vector. Severalextensions of the basic VQ scheme have been proposed in order to attaingood quality with smaller memory and/or search time requirements.

[0013] Some extensions such as the tree-search VQ only aim at shortersearch times as compared to the codebook size. These algorithms do notimprove the image quality (but rather deteriorate it) and are ofinterest here only due to their potential for speeding up other VQ basedalgorithms.

[0014] The VQ algorithms aiming at improving the image quality typicallyuse more than one specialized codebook. Depending on the details of thealgorithm, these can be divided into two categories: they either improvethe encoded image block hierarchically, see FIG. 4, so that the imageblock is divided into smaller blocks, which are further encoded usinganother codebook or codebooks thereby forming a more accurate encodingresult; or they first classify the image material in each block and thenuse different codebooks (47, 48) for different kinds of material (edges,textures, smooth surfaces). FIG. 4 represents an example of an HCVQ(Hierarchical Classifying Vector Quantization) arrangement, i.e. it is acombination of a hierarchical and classifying system.

[0015] The multi-stage variants are also often denoted as cascaded orhierarchical VQ, while the latter ones are known as classified VQ. Themotivation behind all these is that by specializing the codebooks, onereduces the effective dimension of the vector space. Instead ofrepresenting all imaginable image blocks, one codebook can be dedicatedto certain features. In cascaded VQ variants, decreasing the block sizebetween the stages, as illustrated in FIG. 4, often further reduces thevector dimension.

[0016] The compression techniques of VQ codecs are always asymmetricwith the emphasis on an extremely light decoding process. In itssimplest form, the decoding merely consists of table lookups for thecode vectors. The player application can be made very small in size andsent at the beginning of the video stream.

[0017] A codevector corresponds to a whole N×N block. If one vectorindex is sent for each block, the compression ratio is bigger the largerthe block size is. However, a big codebook is needed in order to obtaingood quality for large N. This implies longer times for both theencoding—vector search—and the transmission of the codebook to thereceiving end.

[0018] On the other hand, the smaller the blocks, the more accurate theencoding result becomes. Smaller blocks or vectors also require smallercodebooks, which require less memory and are faster to send to thereceiving end. Also the code vector search operation is faster renderingthe whole encoding procedure faster. The disadvantage of smaller blocksize is the larger amount of indices to be transmitted.

[0019] In the improved VQ variants, vector space is split into parts andone codebook is prepared for each part. In the cascaded VQ, inparticular, the image quality is improved by an effective increase inthe number of achievable vectors V achieved with the successive stagesof encoding. In the ideal case, where the vectors in the differentstages were orthogonal, adding a stage i with a codebook of V_(i)vectors would increase V to V×V_(i). This procedure can significantlyimprove the image quality with reasonable total codebook size and searchtimes. This improvement is done at the expense of the number of bitsneeded to encode each block; this increases by n if V_(i)2^(n). Theimage quality is further improved if the block size is reduced betweenstages.

[0020] A problem with HCVQ solutions, however, is that the codebooks arestill relatively large for sending them at the beginning of a streamingsession for very light solutions, such as for mobile phones.Consequently, the waiting time before the client terminal starts toreceive and display the streaming video is long, which is disturbingfrom the point of view of the client. It is a goal of the invention toalleviate this drawback.

SUMMARY OF THE INVENTION

[0021] A major concept behind the invention is to form HCVQ codevectors,i.e. HCVQ vectors, in a receiving terminal. A group of codevectors formsa codebook, and a group of codebooks forms a codebook library. Only a VQcodebook (or codebooks) and a certain number of modification vectors aresent to the receiving terminal. The compressed HCVQ vectors are formedusing the received VQ and modification vectors. Modification vectors areformed when the original VQ vectors are created by training. CompressedHCVQ vectors are also used in encoding of the video material. The numberof modification vectors is much smaller than the number of HCVQ vectors.Therefore, the downloading time of the vectors at the beginning of astreaming video is considerably shorter, compared to download timeoffered by existing technologies.

[0022] So, the inventive method comprises the steps of:

[0023] a) providing a plurality of VQ vectors and modification vectors;

[0024] b) adjusting a part of a VQ vector with a modification vector, toform an HCVQ vector;

[0025] c) repeating step b) for each of said modification vectors,

[0026] d) repeating steps b) and c) for each part of the VQ vector;

[0027] e) repeating steps b), c) and d) for each of said VQ vectors.

[0028] Thus, the preferred embodiment comprise the adjusting each partof each VQ vector, by all applicable modification vectors, thus forminga set of HCVQ vectors.

[0029] An inventive system according to an aspect of the inventioncomprises at least a receiving module adapted to receive VQ vectors andmodification vectors from a sending element, and a forming module forforming HCVQ vectors from the received VQ and modification vectors

BRIEF DESCRIPTION OF THE DRAWINGS

[0030] In the following the invention is described in more detail bymeans of FIGS. 1-14 in the attached drawings where:

[0031]FIG. 1 illustrates an example of pixels of an image.

[0032]FIG. 2 illustrates an example of a division of an image intoblocks.

[0033]FIG. 3 illustrates an example of a block represented also as avector and a codevector.

[0034]FIG. 4 illustrates an example of a known HCVQ arrangement.

[0035]FIG. 5 illustrates an example of a block of 4*4 pixels.

[0036]FIG. 6 illustrates an example of quantized vector values in acolor diagram.

[0037]FIG. 7 illustrates an example of quantized HCVQ vector values in acolor diagram.

[0038]FIG. 8 illustrates an example of a VQ vector of 4*4 elements, andmodification vectors of 2*2 elements.

[0039]FIG. 9 illustrates an example of forming an HCVQ vector.

[0040]FIG. 10 illustrates an example of how final HCVQ vectors aremarked.

[0041]FIG. 11 illustrates an example of an arrangement according to theinvention.

[0042]FIG. 12 illustrates an example of an environment where theinvention is typically used.

[0043]FIG. 13 illustrates an example of the inventive method, and

[0044]FIG. 14 illustrates additional example of the inventive method.

DESCRIPTION OF THE INVENTION

[0045] As can be seen in FIG. 4, the VQ quantization 41 for originalblocks is usually made using one codebook 46. Following quantizationsare usually made for smaller blocks, in the case of FIG. 4 for blockssize of 4*4 and 2*2. Thus the original block size is divided 44, 45 intosmaller blocks for the consecutive HCVQ quantizations 42, 43. Thefollowing quantizations are made using HCVQ (Hierarchical ClassifiedVector Quantization) codebooks 47, 48. The indices M1, M2, M3 are sentto a receiving terminal wherein the corresponding codevectors aresearched from the vector library of the terminal. Further, the followingvector quantization needs the indices from the previous vectorquantization in order to use the right codebook the HCVQ quantizationrequires. In order to make decoding possible the vector library must besent beforehand to the terminal.

[0046] Let a VQ arrangement comprise a VQ stage for blocks the size of4*4 and a HCVQ for blocks the size of 2*2. A codebook for the VQ stagecontains, for example, 256 codevectors for the size of 4*4 forillumination values; the same codevectors can be used for chrominanceinformation. The number of the bits of the VQ codebooks reaches8*4096=32 768 bits.

[0047] Let a single codebook for the HCVQ stage contain, for example, 16codevectors for the size of 2*2. So, the size of the VQ codebook is16*2*2=64 elements. Due to the division of 4*4 blocks into four 2*2blocks and the HCVQ hierarchy, each 2*2 block has its own codebook.Since there exist 256 different blocks the size of 4*4 from the VQ stageand there are four 2*2 blocks in one block the size of 4*4, the numberof the HCVQ codebooks is 256*4=1024. Due to this, the HCVQ codebooklibrary contains 64*1024=65536 elements, which means 524 288 bits, evenif the same library is used for both luminance and chrominanceinformation. As can be noticed the size of the HCVQ library isrelatively large.

[0048]FIG. 5 shows an example of a block of 4*4 pixels P1 to P16. Whenthe pixel values are quantized, the values are mapped into a colordiagram to be used. Let the color representation used be the YCrCbrepresentation. The chrominance (color) map of the YCrCb representationis illustrated in FIG. 6. It should be noted that the coordinate systemused is the Cartesian system. The pixel values of the block of FIG. 5have been marked as dots in FIG. 6. The VQ vector values have beenmarked as crosses; values C1 to C16 are the pixel values of the VQvector closest to the original image block. Take a closer look at thepixel values of the first 2*2 quadrant (FIG. 5A) of the block. Thequadrant consists of pixel values P1, P2, P5, and P6. As illustrated inFIG. 6, P1 is quantized to C1, P2 to C2, P5 to C5, and P6 to C6. As canbe noted, the real pixel values are quantized to the closest VQ vectorfound. All sixteen pixels of the blocks of the image are quantized.

[0049]FIG. 7 shows a HCVQ quantification of quadrant A illustrated inFIG. 5. The real pixel values are P1, P2, P5, and P6 as in FIG. 6. Thevalues of the best HCVQ vector are HC1, HC2, HC5, and HC6. The VQ valueshave been marked as dashed crosses for a comparison. By sending the HCVQinformation the encoding result can be improved, because there areseveral possible variations of the sub-block of the best VQ vector. All2*2 quadrants of the block are HCVQ quantized in a similar way.

[0050]FIG. 8 shows an example of a VQ vector of 4*4 elements, andmodification vectors of 2*2 elements. The VQ vector values 1, 4, 8, and12 have been marked into the corresponding places of the block B8. Each2*2 quadrant can be modified using modification vectors. MV1 and MV2represent modification vectors illustrating the modification values inthe corresponding places of the 2*2 blocks. Although, only twomodification vectors are represented, the number of modification vectorscan be any suitable number—for example sixteen modification vectors canbe a reasonable amount.

[0051]FIG. 9 shows an example of how the modification vectors are used.Considering quadrant A, shown in FIG. 8, let MV2 be the bestmodification vector, so it is chosen to modify the VQ quantized quadrantA. The values of MV2 are added to the values of quadrant A, from whichthe result is the final HCVQ vector: [1, 4, 1, 4]+[+1, −1, −1, +1]=[2,3, 0 ,5]. This can be described in another way with the help of FIG. 7.The values of modification vectors are correction values for the VQvalues. For example, the original VQ value C5 is added to themodification value Z from which value HC4 is achieved. In other words,modification values adjust VQ values.

[0052]FIG. 10 illustrates how final HCVQ vectors may be marked in theHCVQ arrangement of one VQ codebook and one stage of HCVQ quantization.As mentioned before, in this kind of arrangement, there are 65536elements, i.e. 16384 HCVQ vectors of 2*2. Each HCVQ vector can beidentified through the index system of the HCVQ arrangement. Forexample, vector V12QBi140 is vector 12 in codebook QBi140, which is acodebook for quadrant B of VQ vector i140. At present all 16384 HCVQvectors are sent to a receiving end before sending a video. If sixteenmodification vectors are used, only the VQ codebook containing 256codevectors and sixteen modification vectors is sent to the receivingend. So the number of transmitted modification elements (pixel values)is 16*4=64 elements. As can be noted, the decrease of the transmitteddata is remarkable.

[0053] Modification vectors are formed when VQ vectors are trained usingtraining material. There exist several ways to make the modificationvectors. For example, the differences between original vector values andVQ vector values can be used for obtaining the modification vectors. Analgorithm of mean square error or another suitable algorithm, such asLloyd's algorithm, calculates values for the modification vectors. IfHCVQ vectors are still desired to be formed, it is also possible to usethem when creating the modification vectors.

[0054] The modification vectors may be varied according to which VQvector is to be modified. In other words, the magnitude of themodification vector is VQ vector specific. In general, the magnitude ofthe modification vectors should be larger for those VQ vectors that arefar from neighboring VQ vectors, and smaller for those parts of the VQlibrary where the vector density is high. Thus the magnitudes of themodification vectors are normally smaller in a coordinate area whereinthe distance between neighboring vectors is short, than in an areawherein the distance between neighboring vectors is long. The optimalvariation scheme is determined when the VQ vectors are formed; thedetermination can be done as a part of the VQ teaching procedure. Thevariation information can be either sent with VQ vectors andmodification vectors, or it can be approximated in the receivingterminal according to the VQ and modification vector libraries.

[0055]FIG. 11 shows an example of a system aspect according to theinvention. The arrangement comprises receiving modules, which areadapted to receive a VQ codebook or codebooks 111 and to receivemodification vectors 112. It is also possible to combine the receivingmodules into a single module. A forming module 113 forms HCVQ vectors byadding the quadrants of the VQ codevectors and modification vectors,using the indices of the quadrants for defining each resulting HCVQvector. The index module 115 in the forming module handles identifyingthe quadrants, i.e. parts, of the VQ vectors so all quadrants of each VQvectors are identified by using indices of the VQ vectors and quadrantlabels (The quadrant labels indicate the quadrant of the VQ vector.). Acalculating module 116 adds the values of the quadrants of the VQvectors and the modification vectors. The HCVQ vectors are stored in arepository module 114.

[0056]FIG. 12 shows an example of a typical environment where theinventive arrangement is used. In the sending terminal 123 an encoder121 uses a VQ codebook or codebooks and an HCVQ library. Instead ofsending the HCVQ library, the encoder sends the modification vectors toa receiving terminal 124, where a decoder 122 uses them for forming theHCVQ library. Naturally, the encoder also sends the VQ codebook. Theinventive arrangement, as illustrated in FIG. 11, is in the decoder, butit can be a separate module as well.

[0057]FIG. 13 represents an example of the inventive method. First, thefirst quadrant, i.e. the first part, of the VQ vector is adjusted 131with the first modification vector producing a desired HCVQ vector.Next, the adjusting step is repeated 132 for the same quadrant with anext modification vector producing another HCVQ vector. In this way, anumber of HCVQ vectors are formed for the quadrant. The number of theHCVQ vectors is the number of modification vectors. After this, thesecond quadrant, i.e. the next part, of the VQ vector is adjusted 133similarly. All quadrants are processed similarly. After the first VQvector is processed, HCVQ vectors are produced 134 for the next VQvector.

[0058] If should be noted that HCVQ vectors can be formed forsub-quadrants of the quadrants (subparts of the parts), if several HCVQstages are used for coding video or other data. Naturally, the inventivemethod may comprise the step of receiving 141 the VQ vectors and themodification vectors before starting to produce HCVQ vectors, and thestep of forming 142 HCVQ vectors for the subparts of the parts of eachVQ vector as FIG. 14 illustrates. It should also be noted that themodification vector must be formed, i.e. trained, prior to any use.

[0059] Although, the invention is described with only the few examplesin this text, it is evident that the invention can be used in othercases as well. Due to this it is clear that the invention is notrestricted to the above-mentioned examples, but it can be used in anumber of solutions, in the scope of the inventive idea.

1. A method for forming HCVQ vectors in a receiving terminal, whereinthe method comprises the steps of: a) providing a plurality of VQvectors and modification vectors; b) adjusting a part of a VQ vectorwith a modification vector, to form an HCVQ vector; c) repeating step b)for each of said modification vectors, d) repeating steps b) and c) foreach part of the VQ vector; e) repeating steps b), c) and d) for each ofsaid VQ vectors.
 2. A method according to claim 1, wherein step b)comprises the step of adding values of the part of the VQ vector andvalues of the modification vector.
 3. A method according to claim 2,wherein step a) further comprises receiving the VQ vectors andmodification vectors from a sending terminal.
 4. A method according toclaim 3, wherein the method further comprises the prior step of formingthe modification vectors.
 5. A method according to claim 1, wherein themethod further comprises the step of repeating steps b), c), and d) forsubparts of the parts of each VQ vector.
 6. A method according to claim4, wherein the method further comprises the step of repeating steps b),c), and d) for subparts of the parts of each VQ vector.
 7. A methodaccording to claim 5, wherein the parts of the VQ vectors are quadrantsof the vectors.
 8. A method according to claim 6, wherein the parts ofthe VQ vectors are quadrants of the vectors.
 9. A method according toclaim 5, wherein the method further comprises the step of repeatingsteps b), c), d), and e) for subparts of the subparts of each VQ vector.10. A method according to claim 6, wherein the method further comprisesthe step of repeating steps b), c), d), and e) for subparts of thesubparts of each VQ vector.
 11. A method according to claim 1, whereinat least one of said modification vectors has a magnitude, and saidmagnitude increases when a distance between neighboring VQ vectorsincreases.
 12. A method according to claim 9, wherein at least one ofsaid modification vectors has a magnitude, and said magnitude increaseswhen a distance between neighboring VQ vectors increases.
 13. A methodaccording to claim 10, wherein at least one of said modification vectorshas a magnitude, and said magnitude increases when a distance betweenneighboring VQ vectors increases.
 14. A method according to claim 11,wherein the distance information is sent with the VQ vectors and themodification vectors from the sending terminal to the receivingterminal.
 15. A method according to claim 12, wherein the distanceinformation is sent with the VQ vectors and the modification vectorsfrom the sending terminal to the receiving terminal.
 16. A methodaccording to claim 13, wherein the distance information is sent with theVQ vectors and the modification vectors from the sending terminal to thereceiving terminal.
 17. A method according to claim 11, wherein thedistance information is approximated in the receiving terminal.
 18. Amethod according to claim 12, wherein the distance information isapproximated in the receiving terminal.
 19. A method according to claim13, wherein the distance information is approximated in the receivingterminal.
 20. A method according to claim 1, wherein at least one ofsaid modification vectors has a magnitude which is VQ vector specific.21. A method according to claim 11, wherein at least one of saidmodification vectors has a magnitude which is VQ vector specific.
 22. Asystem for forming HCVQ vectors in a receiving terminal, the systemcomprises: a receiving module adapted to receive VQ vectors andmodification vectors from a sending element; and, a forming module forforming HCVQ vectors from the received VQ and modification vectors. 23.A system according to claim 22, further comprising a repository modulefor storing the HCVQ vectors.
 24. A system according to claim 22,wherein the receiving module is divided into two separate modules, thefirst module for the VQ vectors and the second module for themodification vectors.
 25. A system according to claim 23, wherein thereceiving module is divided into two separate modules, the first modulefor the VQ vectors and the second module for the modification vectors.26. A system according to claim 22, wherein the forming module comprisesan index module for identifying the parts of the VQ vectors, and acalculating module for adding values of parts of a VQ vector toassociated values of a modification vector.
 27. A system according toclaim 24, wherein the forming module comprises an index module foridentifying the parts of the VQ vectors, and a calculating module foradding values of parts of a VQ vector to associated values of amodification vector.
 28. A system according to claim 25, wherein theforming module comprises an index module for identifying the parts ofthe VQ vectors, and a calculating module for adding values of parts ofthe VQ vector to associated values of a modification vector.
 29. Asystem according to claim 22, wherein at least one of said modificationvector has a magnitude which increases when a distance betweenneighboring VQ vectors increases.
 30. A system according to claim 27,wherein at least one of said modification vector has a magnitude whichincreases when a distance between neighboring VQ vectors increases. 31.A system according to claim 28, wherein at least one of saidmodification vector has a magnitude which increases when a distancebetween neighboring VQ vectors increases.
 32. A system according toclaim 29, wherein the distance information is sent with the VQ vectorsand the modification vectors from a sending terminal to the receivingterminal.
 33. A system according to claim 30, wherein the distanceinformation is sent with the VQ vectors and the modification vectorsfrom a sending terminal to the receiving terminal.
 34. A systemaccording to claim 31, wherein the distance information is sent with theVQ vectors and the modification vectors from a sending terminal to thereceiving terminal.
 35. A system according to claim 29, wherein thedistance information is approximated in the receiving terminal.
 36. Asystem according to claim 30, wherein the distance information isapproximated in the receiving terminal.
 37. A system according to claim31, wherein the distance information is approximated in the receivingterminal.
 38. A system according to claim 22, wherein at least one ofsaid modification vector has a magnitude which is VQ vector specific.39. A system according to claim 36, wherein at least one of saidmodification vector has a magnitude which is VQ vector specific.
 40. Asystem according to claim 37, wherein at least one of said modificationvector has a magnitude which is VQ vector specific.